THIS RELEASE v1.19
============
Major historical changes:
  v1.13 DCC Chat works safely
  v1.14 DCC Send seems to work safely, and has filetype added on end
  v1.15 Restructured the Magrathea directories
  v1.16 Dependancy checking added
  v1.17 Restructured the Scripts directory to be /just/ Magrathea
        Released to Dave Thomas and Matthew Godbolt
  v1.18 Additional overloads to make 'hooks' easier.
        Examples.AutoGreet sent out to Stuart Bruce, Vince Hodd, and
        Stuart Winter. FTP added.
        Released to Dave Thomas, Alex Howarth and Chris Johns for
        testing and comments. COMPLETE release, including IRClient 0.27.
  v1.19 Work done whilst Matt and over the intermediate weeks :
        Memory leaks fixed, indirected procedure calls added, menus made
        script definable. Internal directory now required as Internal.Boot
        is now the initial script. Internal.Menus defines the main menus,
        overloadable to add new entries at relevant points.
        Wimp messages added and made use of with ExtEdit library (simple
        controller - no saves, no returns). Wildcards fixed.
        DCC ditched and started from scratch using indirected functions
        and a simpler programming interface (new structure too).
        Scheduler made redundant.
        
  
Structure of directory :

Scripts :
|
+-Internal :
|    Contains many internal routines for providing 'base' facilities
|    The majority of these should be veneers for the main script functions
|
+-Default :
|    Scripts and resources which are explicitly loaded by Magrathea on startup.
|    Mostly these are required routines and support for simple things
|
+-Docs :
| |  Documentation for the complete release of Magrathea.
| |
| +-Disclaimer :
| |    Disclaimers for the various extension modules and resources
| |    This may be moved to their respective directories in future
| |
| +-Prog :
|      Programming hints, guides and reminders for myself and others
|      This is NOT guarenteed to be up to date. Not yet anyhow.
|
|
+-Examples :
|    Any example code that people have put together along with a description
|    of how it works.
|
+-Magrathea :
|    The main engine for Magrathea.
|    This script will load each of the Default scripts and initailise them,
|    before scanning the Modules directory for extensions. The bulk of IRC
|    proper is processed here.
|
+-Modules :
|    Extension scripts reside in here, either as a single basic file with
|    the script name, or as a directory with the script name and basic file
|    with the name !Module. Resources should only be stored in these
|    directories. A means will eventually be provided for generating help
|    from within these. Files which require others to be loaded previously
|    should include a !Depend file in their directory containing the names
|    of those modules which it depends on. These should be modules whose
|    functions it uses, or overloads.
|
+-Obsolete :
|    Scripts which are no longer required, or are no longer being supported
|    will reside in here. Their use is not recommended. The retention is for
|    posterity and... well... you never know :-)
|
+-User :
     The user specific directory.
     This contains two types of file, those which are user editable, and
     those which are generated by the scripts to describe the users
     preferences. Currently there is no distinction between these; this
     may change in a future release.
     Basically, this directory should be able to be left static from one
     update to the next. 


The Scripts themselves are described below :


*******************************************************************************
**                            Internal Modules                               **
*******************************************************************************


Boot
----
Author    : Matthew Godbolt
Version   : v1.00 (04 Jan 1997)
Synopsis  : Initial script to be loaded. This should start the internal modules
            and then call the main script.
Commands  : none
Overloads : none
ToDo      : none
Bugs      : None


Constants
---------
Author    : Matthew Godbolt
Version   : v1.00 (04 Jan 1997)
Synopsis  : Provides values which will be passed between IRClient and the
            scripts.
Commands  : none
Overloads : none
ToDo      : none
Bugs      : None


Menus
-----
Author    : Matthew Godbolt & Justin Fletcher
Version   : v1.04 (18 Jan 1997)
Synopsis  : Provides framework for providing menus and adding to existing menus
Commands  : none
Overloads : PROCOverload_AddMenuEntries(menu$)
            FNOverload_UnknownWindowMenu(display$,menu$)
            PROCOverload_InputBoxMenu(display$)
            PROCOberload_UnknownMenu(menu$)
ToDo      : Incorporate stuff from Matts 0.32
Bugs      : None


*******************************************************************************
**                             Default Modules                               **
*******************************************************************************

Config
------
Author    : Justin Fletcher
Version   : v1.01 (26 Sep 1996)
Synopsis  : Provides configuration support via /config and configures the
            standard stuff.
Commands  : /config [<module> [<option> [<value]]]
Overloads : PROCOverload_ConfigCommand
            FNOverload_ConfigModName
            PROCOverload_ConfigOptions
ToDo      : Needs removing and all configuration moving directly to Config+
Bugs      : None


Dependency
----------
Author    : Justin Fletcher
Version   : v1.06 (27 Dec 1996)
Synopsis  : Provides dependancy checking and module loading for the extension
            modules.
Commands  : none
Overloads : none
ToDo      : Nothing I can think of
Bugs      : None


GDBM
----
Author    : Justin Fletcher
Version   : v1.02 (20 Aug 1996)
Synopsis  : Provides simple databasing mechanism which is easier to use than
            direct file access. Stores configuration options.
Commands  : none
Overloads : none
ToDo      : Add routines to list current members of db
Bugs      : If <IRClient$Dir> changes then the DB can't be found and will
            always return "" or "**NOFILE**"


Magrathea
---------
Author    : Various, mostly Justin Fletcher, Matthew Godbolt and Alex Howarth
Version   : N/A (See above for Magrathea release)
Synopsis  : The main engine behind IRClient. Provides most / commands and
            ctcp's and gives support via Overload_ routines for easier hooks.
Commands  : lots !
Overloads : PROCInitialiseModule
            PROCShutdownModule
            PROCConnecting
            FNOverload_ScriptInfo
            PROCOverload_DisplaySelected
            PROCOverload_UserLine
            PROCOverload_UnknownCommand
            PROCOverload_UnknownCTCPReply
            PROCOverload_UnknownCTCPRequest
            FNOverload_ListCTCP
            PROCOverload_On_Kick
            PROCOverload_On_Part
            PROCOverload_On_Nick
            PROCOverload_On_Quit
            PROCOverload_On_Join
            PROCOverload_On_Say
            PROCOverload_On_Notice
            PROCOverload_ServerResponse
            FNOverload_AboutToSay
ToDo      : God only knows...
Bugs      : I'm not sure if notify from bots works


Utils
-----
Synopsis  : Provides utilities which may be relied on by all modules
Commands  : none
Overloads : none
To Do     : nothing
Bugs      : none


*******************************************************************************
**                            Extension Modules                              **
*******************************************************************************

AutoGreet
---------
Author    : Justin Fletcher
Version   : v1.03 (30 Dec 1996)
Synopsis  : Example script to show how to do simple automated greets
Commands  : none
Overloads : none
Depends   : Scheduler
ToDo      : nothing
Bugs      : none known


Colours
-------
Author    : Justin Fletcher, based on an idea by Stuart Bruce
Version   : v1.00 (24 Dec 1996)
Synopsis  : Provides a means of introducing some colour into conversations
Commands  : none
Overloads : none
Depends   : none
ToDo      : nothing
Bugs      : none known


DCC 
---
Author    : Justin Fletcher
Version   : v1.10 (18 Jan 1997)
Synopsis  : Provides simple interface to DCC operations, including listing
            connections, closing them and managing the list.
Commands  : /dcc List|Close <number>
Overloads : PROCOverload_UnknownDCCCommand
            PROCOverload_UnknownDCCRequest
            PROC<base>_Connected(handle,private)
            PROC<base>_Incoming(handle,private,bytes)
            PROC<base>_Closed(handle,private)
            PROC<base>_Error(handle,private)
            FN<base>_Status(handle,private,flags)
Depends   : none
ToDo      : Write some support modules !
Bugs      : none known


Email
-----
Author    : Justin Fletcher
Version   : v1.00 (20 Aug 1996)
Synopsis  : Provides a simple email database
Commands  : none
Overloads : none
Depends   : none
ToDo      : Re-write it completely - it's only a temporary measure
Bugs      : You can't list who is in the database


ExtEdit
-------
Author    : Justin Fletcher
Version   : v1.01 (07 Jan 1997)
Synopsis  : Provides a means of handling External edit sessions
Commands  : none
Overloads : none
Depends   : none
ToDo      : implement 'save-to' and other such calls.
Bugs      : not known - still experimental


FloodProt
---------
Author    : Justin Fletcher
Version   : v1.03 (27 Sep 1996)
Synopsis  : Provides flood protection for messages sent from IRC
Commands  : none
Overloads : none
Depends   : none
ToDo      : not sure really... ideas ?
Bugs      : none known - try it live ?


FTP
---
Author    : Justin Fletcher
Version   : v1.05 (03 Jan 1997)
Synopsis  : Provides a means of FTPing files to and from remote sites
Commands  : /ftp [Close|<host> [<user> [<password>|- [<directory>]]]]
Overloads : PROCOverload_UnknownFTPCommand
            PROCOverload_FTPResponse
            PROCOverload_UnknownFTPResponse
            PROCOverload_FTPDataConnection
            PROCOverload_FTPDataError
            PROCOverload_FTPDataIncoming
Depends   : none
ToDo      : ensure that it works 'live'
Bugs      : seems ok live, but loses connection sometime with 'can't connect
            to port'.


Headlines
---------
Author    : John Wright, with modifications by Justin Fletcher
Version   : v1.02 (11 Sep 1996)
Synopsis  : Provides a means of seeing news headlines from Press Association
Commands  : /headlines
Overloads : none
Depends   : none
To Do     : colours maybe ? Reformat some of it a bit ?
            Seems to work ok though
Bugs      : none


Help
----
Author    : Justin Fletcher
Version   : 1.01 (28 Sep 1996)
Synopsis  : Provides simple help interface within IRClient.
Commands  : /help <filename>
Overloads : none
Depends   : none
ToDo      : Write loads of help
            Get rid of the :END kludge
            Add some more useful : commands
Bugs      : The programming section looks a mess
            You can't go up directories from filenames
            Most of the main IRC commands haven't been updated


HTTP
----
Author    : Justin Fletcher
Version   : v1.10 (27 Dec 1996)
Synopsis  : Provides a means of reading HTML whilst online using IRClient.
Commands  : /http <page>|<number>|links|back
Overloads : none as yet
Depends   : none
To Do     : Add <pre> tag support (HTML level 1, I think)
            Add support for display of files which are not text/html, plus
            recognition of such files
            Support for multiple authentication realms over sessions.
Bugs      : Links longer than 512 chars will crash the program, as will text
            of that length.
            Menus can be unstable if they are being build whilst the page is
            coming in.

Identd
------
Author    : Matthew Godbolt
Version   : v1.00 (unknown)
Synopsis  : Provides Identd support for IRClient
Commands  : none
Overloads : none
Depend    : none
To Do     : Nothing
Bugs      : none known


List
----
Author    : Justin Fletcher
Version   : v1.00 (13 Aug 1996)
Synopsis  : Provides additional facility to list the channels by using a
            seperate connection.
Commands  : /list [<wildcards>] [-min <number>] [-max <number>]
Overloads : none
Depends   : none
To Do     : Check that it actually does work
Bugs      : none


Logs
----
Author    : Justin Fletcher
Version   : v1.04 (28 Sep 1996)
Synopsis  : Provides the facility to log channel and chats to files
Commands  : none
Overloads : none
Depends   : none
To Do     : not sure
Bugs      : if directories get deleted things mess up...


Motd
----
Author    : Matthew Godbolt
Version   : v1.01 (24 Dec 1996)
Synopsis  : Provides the nice IRClient MOTD as supplied by TheMoog's webpage.
Commands  : none
Overloads : none
Depends   : none
To Do     : nothing
Bugs      : none


Notify
------
Author    : Alex Howarth, with modification by Justin Fletcher
Version   : v0.06 (28 Sep 1996)
Synopsis  : Provides notification of users presence on IRC.
Commands  : /notify [[+|-]<user>|*|?]
Overloads : none
Depends   : none
To Do     : Find a way of making it check every so often, using CallBacks.
Bugs      : none


OnTV
----
Author    : Justin Fletcher
Version   : v1.01 (02 Sep 1996)
Synopsis  : Provides a nice interface to the OnTVNow daemon I've got.
Commands  : /ontv
Overloads : none
Depends   : none
To Do     : Nothing
Bugs      : none


QOTD
----
Author    : Justin Fletcher
Version   : v1.00 (27 Dec 1996)
Synopsis  : Fetches Quote Of The Day messages from servers
Commands  : /qotd <host>
Overloads : none
Depends   : OnTV
To Do     : find out which servers actually support this feature, other than
            just my TelnetD.
Bugs      : none


Samples
-------
Author    : Justin Fletcher
Version   : v1.02 (28 Sep 1996)
Synopsis  : Provides facility for sound samples to be played using David
            Radfords SamplePlayer module, on particular event
Commands  : none
Overloads : none
Depends   : none
To Do     : Tie in functions other than just start up, beep and pinging
Bugs      : seems to kill RiscPC's if the built in player is used...


SMTP
----
Author    : Justin Fletcher
Version   : v1.07 (26 Dec 1996)
Synopsis  : Provides a means of sending email (and currently my only means)
            whilst online.
Commands  : /mail [Resend]
Overloads : none
Depends   : Email
To Do     : Add line editing, deletion
            External edits when finished
Bugs      : Failures which require re-coding mean that the message is lost.


*******************************************************************************
**                            Obsolete Modules                               **
*******************************************************************************

Scheduler
---------
Author    : Justin Fletcher
Version   : v1.03 (28 Sep 1996)
Synopsis  : Simple scheduling using overloads on IRCLine and UserLine.
            Will sort schedule list.
Commands  : None
Overloads : PROCOverload_CallBack
ToDo      : Fix the CallEvery code !
Bugs      : This really needs to be replaced by code directly callable in
            IRClient. However, this is actually quite nice :-)
Reason    : Scheduler functions are now handled by IRBasic much more
            efficiently.


DCC 
---
Author    : Justin Fletcher, based on original code by Matthew Godbolt
Version   : v1.04 (01 Jan 1997)
Synopsis  : Provides simple interface to DCC operations, including listing
            connections, closing them and managing the list.
Commands  : /dcc List|Chat <nick>|Close <number>
            /me whilst in =windows
Overloads : PROCOverload_UnknownDCCCommand
            PROCOverload_UnknownDCCRequest
            FNOverload_DCCStatus
            FNOverload_DCCClose
Depends   : none
ToDo      : none
Bugs      : Shouldn't really send |M at end of lines
Reason    : Becoming too awkward to develop due to the way the structure has
            grown and the fact that DCC Send failed most of the time when
            'live' for no adequately explained reason even though it works
            fine locally.


DCCSend
-------
Author    : Justin Fletcher
Version   : v1.05 (28 Sep 1996)
Synopsis  : Provides facility to DCC Send files to other users.
Commands  : /dcc Send <nick> <file>
            /dcc Get <number>
Overloads : none
Depends   : DCC
ToDo      : Add DCC Close for GET's
Bugs      : Seems to fail by sending the ip address wrongly...
Reason    : See DCC.
